@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu  } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED736 FREE SECTORS COPYING---D1:DIRECK.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 138ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8u|+-.( U U U( U] U+   + ƍ +  T}Ơ+  נ+  + ,  t   > > , Le# , U} t > > , L# ,  t w֤ע > w  , %,  t JV}  > > (, L$*,  t > > +, LG$-,  t w֤ע > W}w  ., o w Q w+ }L$+  > >  > > LX}$+ La% H, 񩆠  > > _, L:%+ L% > > a, Y} L$ c,    > > ~, L% L% > > ꩀ, Z}La%y J w멅+ LF& ,    > > ꩠ, LF&Py } [}  ,  w L& ,  ˠ, Р + sL&& נ, \} t wL&  w J }  ؠ, , t+ + 7 + z ]}   w멑+ Lw'  +  w멗+ L' w t, t+ L)) w  w멝+ ^} L'  +LG' w Q  + > J  w멝+ L"( w Q w w LG' w_}+ L( > > t w U tL)) w멣+ L( U t, tL)) > w `} > t w w L) w U t w w L)), t w֤ע J wa}֤ע > w  w֤ע >멛 J +  w֤ + L)LG'  w+ L) w֤ע b} > w  w֤ע >멛 J   w Lg* }  ,  - Р c}+ sL0* }  -  w L* > > t U - L* >d}-    w N+  wL +  w J+   w -  t wLG+ze}  w  PG'F&  @  } y W! @@@AU@2@B9Pf}} ̴A TEXT FORMATTER(c) 1990 Thomas J. AndrewsSOURCE FILE NAME D:::DESTINATION FILE NAME D::g}:SOURCE FILE LEFT MARGIN SEPARATE DISKS? (Y/N)NYFORMAT DESTINATION? (Y/N)YNDISK WRITE VERIFY OFF? (Y/N)YINSERh}T SOURCE DISKAND DESTINATION DISK Ӡ WORKING...INSERT DESTINATION DISK Ӡ WORKING...:: o"o"2i}o"Fo"Zo"no"o""""##e##"#6$JG$^b$r$$$:%a%%%%&&F&:&N&b&v&'j}G'w'''"(?((*(>)R))f)z)))0*F*g*v***. +B/+VG+x+%&&F&:&N&b&v&'^ COL40 DOCUMENTATION Copyright 1990 l} by Thomas J. Andrews COL40 will reformat text files m}into a 40 column form that can be used by Print Star, printed to the screen from DOS, or to upload text to telecomm n}unications services. It will handle files of any length, has full word wrap capability, and it will treat the carriage o} return-line feed combination of standard ASCII files as an ATASCII RETURN so that you may format files created on p}and downloaded from other computers. COL40 is written in compiled TurboBASIC XL, so it requires an XL or XE compute q}r and one or more disk drives. A version written in standard Atari BASIC for use with the 400/800 computers is avai r}lable on request. To run this program, you will need three files. The first is DOS.SYS. (tested with Ata s}ri DOS 2.*) The second is RUNTIME.COM, the Turbo BASIC loader, required by all compiled Turbo BASIC programs. The t t}hird is COL40.CTB, which is the compiled version of the program. The easiest way to run the program is to set it up to u}boot automatically on power-up. To do this, rename RUNTIME.COM to AUTORUN.SYS and COL40.CTB to AUTORUN.CTB. Upon po v}wer-up, DOS.SYS will load and execute any file named AUTORUN.SYS, which in our case will be the Turbo BASIC loader. w} The loader will in turn look for any file named AUTORUN.CTB, load it, and run it. To run from DOS, use x}option L to load RUNTIME.COM. When prompted, press "L" and use COL40.CTB when asked for a file name. Bef y}ore you use this program on a text file, you will have to know a few things about the file. First, of course, is the fi z}le name. COL40 does not provide any means for viewing the directory of the disk, so you should know the file names {}you are going to use for both the original source file and the reformatted destination file before you use the prog |}ram. Second is the form of the source file. Many files are preformatted for use with an 80 column device }}, such as a printer. Frequently, such files start each record with a certain number of spaces to provide a blank ar ~}ea, or margin, on the left side of the page. This documentation is an example of that form. If you were to load thi }s file into a word processor like Textpro, Speedscript, Atariwriter, or Atariwriter Plus, you would see that there is a }zigzag appearance to the left side of the screen. This is how the output of COL40 would look if the margin spaces }are not stripped away. COL40 will remove the left margin for you, but you must tell it how large this margin is. To } determine this if in doubt, load the file into a word processor like those mentioned above. It doesn't matter if the } entire file loads before you run out of memory or not, now carefully count the number of spaces in the margin from th }e screen display of the Edit function of the processor and note this number. For example, the margin f }or this file is 5. Lastly you will need to know the size of the file for planning purposes. COL40 is goi }ng to produce a second file that will be roughly the same size as the file you are reading, placing it either on the } same disk or a separate one, as you specify. If you are formatted in single density, and you wish to use the same disk }, files longer than about 350 sectors will run out of disk space. COL40 has provisions for disk swapping to use sep }arate disks in single drive systems. Now you are ready to use COL40. Boot up the computer with the COL40 } disk previously prepared. Answer the questions concerning file names. If no device code (Dn:) is specified, drive D1: i }s assumed. Next, you will be asked about the size of the margin for the source file. Answer with the number you not }ed above and that number of spaces will be stripped away from the lines of text. Don't worry if you get the number }a little too large. COL40 will only strip away spaces - not text. If you get the number too large, the only things that }will be affected are indentations for paragraphs and the like. All subsequent questions require a yes (Y) or no (N) } answer. If you specified the same drive for both source and destination files you will be asked if you will want t }he destination file on a separate disk. A yes answer will cause the program to prompt you when to swap disks. If you } specify different drives or disks for each file, you will be asked if you want to format the destination disk. Finally }, if the write verify function is turned on (standard), you will be asked if you will want to turn it off. Answerin }g yes here will speed up disk writes somewhat with a small (usually insignificant) loss of reliability. }Next, insert the disk(s) for the original source and reformatted files into the appropriate drive(s), and press START. T }hat's all there is to it - COL40 will do the rest, prompting you to swap disks if necessary. A 250 sector file take }s about 4 minutes plus formatting time using two drives with the write verify off. COL40 was originally }conceived as an aid to Print Star, and, like Print Star, is a Shareware program. The suggested fee for COL40 is the } same as that for Print Star - a letter with comments and suggestions for a better program. To help with this, the last } page of this documentation is an E-Z response letter. All you have to do is Print it out, fill in the blanks, and } mail it to the address at the top of the page. Unfortunately, I am unable to personally receive E-mail. However, } my good friend Ken Wickert has graciously agreed to relay comments and messages to me. Contact him as follows: } GEnie K.WICKERT CompuServe 70731,2322 } Delphi KWICKERT Atari 8-bit computers forever! Tom Andrews } Easy-response letter: mail to: THOMAS J ANDREWS 7805 US ROUTE 20 } MANLIUS NY 13104 Tom, I used your COL40 program on my Atari__________computer with ________ }_______________disk drive(s). I own a______________printer that is( )/is not ( ) Epson compatable. I have use }d or plan to use COL40 for (please check) ( ) preparing files for Print Star. ( ) converting downloaded ASCII } files. ( ) converting files for screen reading. ( ) converting files for telecommunications uploading ( ) oth }er (specify)_____________________________________________________________ _________________________________________ }_____________________________ I rate this program in the following ways: ExcellentGood Fair Poor } Ease of use ( ) ( ) ( ) ( ) Utility ( ) ( ) ( ) ( ) Speed ( ) ( ) ( }) ( ) DOC clarity ( ) ( ) ( ) ( ) I found this program on the following bulletin board/pay se }rvice: ______________________________________________________________________ Phone Number (if BBS):_________ }_____________________ I would be interested in receiving upgrades to this program ( ). Comments: _ }_____________________________________________________________________ __________________________________________________ }____________________ ______________________________________________________________________ _______________________ }_______________________________________________ ______________________________________________________________________ } My name and address are: ______________________________________________________________________ _________ }_____________________________________________________________ __________________________________________________________ }____________ _________________ l;; Col80 - an 80-column FAST file; reader... v1.5 ;; (c) July 1992 Itay Chamiel;; For everybody:;; This program was }written using; T:Edit, and assembled using A65.; I take no responsibility for; incompatibilities with other; assemblers (}Who'd want one??);; This program is not commented,; exept for a few minimal blurbs; scattered around it.;; I take no re}sponsibility for the; cleanliness of the code, but I; CAN say that this one compiled; without errors and had no; unexpect}ed bugs - with A65.;; If you modify it, do NOT change; the credits... I'll do that, if; you have made any important; add}itions.. and deserve credit..; *I* will increment the version; number and add your credit..; Just send me the modified cod}e; (your part commented a bit..); and I'll change the title screen.;; If you'll want to make it be able; to go up when r}eading, I warn you; that you'll have to flush out the; entire mess of a main loop that I; wrote.. :) ;; I guess enjoy th}e hack... it's; not THAT bad!!;; -Itay Chamiel; September 3 1992;;;; Zero-page equ}ates;DLDOER=$80POS=$82X=$83Y=$84CNTRL=$85CNTRH=$86PRCHAR=$87TEMP=$89MORCNTR=$8APRLEN=$8BPRCNTR=$8CBUFPLC=$8EBUF}LIM=$90MORSIZE=$92PRFROM=$94STAT=$96;; Equates;DLIST=$9C00CHARSET=$9800SCREEN=$A000-80ICCOM=$342ICBAL=$344ICBAH=$}345ICPTL=$346ICPTH=$347ICBLL=$348ICBLH=$349ICAX1=$34AICAX2=$34BCIOV=$E456;; Main program; ORG $2E0 DW INIT ORG $}294A ; Overwrite Mydos's DUPHDLIST DB $70,$70,$30,$42 DW HLINES DB $70,$70,$70,$70,$70 DB 2,0,2,0,2,0,2,65 DW HDLISTHL}INES DB '츰' DB '젭' DB ' ? - Help ' DB ' ' DB ' - Line d' DB 'own ' DB ' - Page d' DB 'own ' DB ' Q - Quit ' D}B ' 'INIT LDA $79 BNE NOFEFE LDA #$FE STA $79 STA $7ANOFEFE LDX #0CHLINES LDA #0 STA TEMP LDA }HLINES,X CMP #128 BCC CHNOIN SEC SBC #128 SEC ROR TEMPCHNOIN CMP #96 BCS CHLOK CMP #32 BCS CHL1 CLC ADC #64+32C}HL1 SEC SBC #32CHLOK CLC ADC TEMP STA HLINES,X INX CPX #INIT-HLINES BNE CHLINES LDA 12 STA J+1 LDA 13 STA J+2 L}DA #RESET&255 STA 12 LDA #RESET/256 STA 13 LDY #1RESTART TYA PHA LDA #10 STA 709 LDA #0 STA 710 STA 712 STA 752} STA 559 TAXERCHSET LDA #0 STA CHARSET,X INX CPX #8 BNE ERCHSET LDX #0TABCHDO LDA XCHARS,X STA DLIST-16,X INX CP}X #16 BNE TABCHDO JSR VDELAY JSR PRTITLE LDA #34 STA 559 PLA TAY CMP #128 BCC NORST LDA #ERROR/256 LDY #ERROR&255} JSR CIOPRINT JSR GETFILE JMP NORST2RESET LDA #0 STA 710 STA 559 LDA #1 STA 752 JSR VDELAY LDA $79 BNE RSNOFEFE L}DA #$FE STA $79 STA $7ARSNOFEFE JSR PRTITLE LDA #0 STA 752 LDA #34 STA 559 JSR VDELAYJ JSR $FFFFNORST JSR GETFILE}NORST2 LDA #255 STA MORCNTR LDA #24 STA MORSIZE LDA #0 STA 559 JSR VDELAY LDA #DLIST/256 STA 561 STA DLDOER+1 LDA} #DLIST&255 STA 560 CLC ADC #3 STA DLDOER LDA #$70 STA DLIST STA DLIST+1 LDA #$30 STA DLIST+2 LDA #SCREEN&255 STA }CNTRL LDA #SCREEN/256 STA CNTRH LDX #0DODL LDY #0 LDA #$4F STA (DLDOER),Y INY LDA CNTRL STA (DLDOER),Y CLC ADC #L}O[40*8] STA CNTRL INY LDA CNTRH STA (DLDOER),Y ADC #HI[40*8] STA CNTRH LDA #$F INY STA (DLDOER),Y INY STA (DLDOER)},Y INY STA (DLDOER),Y INY STA (DLDOER),Y INY STA (DLDOER),Y INY STA (DLDOER),Y INY STA (DLDOER),Y LDA DLDOER CLC} ADC #10 STA DLDOER LDA DLDOER+1 ADC #0 STA DLDOER+1 INX CPX #25 BNE DODL LDY #0 LDA #65 STA (DLDOER),Y INY LDA #}DLIST&255 STA (DLDOER),Y INY LDA #DLIST/256 STA (DLDOER),Y LDA #LO[SCREEN-320] STA DLIST+4 LDA #HI[SCREEN-320] STA DL}IST+5 LDA #LO[SCREEN-640] STA DLIST+134 LDA #HI[SCREEN-640] STA DLIST+135 LDA #15 STA 709 LDA #0 STA 710 JSR CLRSCRN}; LDA #0 STA STAT STA X STA Y LDA #2 STA 712 LDA #34 STA 559GOGETDS JSR GETBYTE CPY #136 BEQ ENDOF LDA #LO[CHAR}SET] STA BUFLIM LDA #HI[CHARSET] STA BUFLIM+1 LDA #LO[GOGETDS] STA JMPCHN+1 LDA #HI[GOGETDS] STA JMPCHN+2 JMP LOOPPE}NDOF LDA #BUFFER&255 CLC ADC ICBLL+$20 STA BUFLIM LDA #BUFFER/256 ADC ICBLH+$20 STA BUFLIM+1 LDA #LO[ENDOFILE] STA J}MPCHN+1 LDA #HI[ENDOFILE] STA JMPCHN+2LOOPP INC BUFPLC LDA BUFPLC BNE GETCH INC BUFPLC+1GETCH LDA BUFPLC CMP BUFLIM} BNE PRNTCH LDA BUFPLC+1 CMP BUFLIM+1 BNE PRNTCHJMPCHN JMP $FFFFPRNTCH LDY #0 LDA (BUFPLC),YATACHN CMP #1 BEQ RET }CMP #127 BEQ TAB STA PRCHAR JSR PRINT INC X LDA X CMP #80 BNE LOOPPRET LDA #0 STA X INC MORCNTR LDA MORCNTR CMP }MORSIZE BEQ DOMOREBKMOR INC Y LDA Y CMP #25 BNE LOOPP DEC Y JSR SCRLDOWN JMP LOOPPTAB LDA X CLC ADC #5 STA X C}MP #80 BCC LOOPP JMP RETDOMORE JSR GETKEY CMP #32 ; Spacebar? BNE MNOSPC STA STAT LDA #0 STA MORCNTR JMP BKMORM}NOSPC CMP #155 ; ? BNE MORCHKQ STA STAT DEC MORCNTR JMP BKMORMORCHKQ CMP #113 ; 'Q'? BNE CHKHLP LDA #0 PHA} JMP ADSKERRCHKHLP CMP #63 ; Qmark? BNE DOMORE JSR DOHELP JMP DOMOREENDOFILE LDA Y CMP #24 BNE ENOSCRL LDA STAT B}EQ EYSSCRL CMP #32 BEQ EYSSCRLEOFBLP JSR GETKEY CMP #155 BEQ EYSSCRL CMP #32 BEQ EYSSCRL CMP #63 BNE EOFBLP1 JSR D}OHELP JMP EOFBLPEOFBLP1 CMP #113 BNE EOFBLP LDA #0 PHA JMP ADSKERREYSSCRL JSR SCRLDOWNENOSCRL LDA #0 STA X LDA #}24 STA Y LDA #26 LDX #EOFPRN/256 LDY #EOFPRN&255 JSR PRMESGEOFLP JSR GETKEY CMP #63 ; Qmark? BNE EOFLP1 JSR DOHE}LP JMP EOFLPEOFLP1 CMP #113 ; 'Q'? BNE EOFLP LDA #0 PHA;ADSKERR LDX #$60 LDA #12 STA ICCOM+$60 JSR CIOV; LDX} #$60 LDA #3 STA ICCOM+$60 LDA #SOPEN/256 STA ICBAH+$60 LDA #SOPEN&255 STA ICBAL+$60 LDA #0 STA ICAX2+$60 LDA #12 S}TA ICAX1+$60 JSR CIOV; PLA TAY JMP RESTARTSOPEN DB 'S';GETKEY LDA 764 CMP #255 BEQ GETKEY LDA #1 STA 53279 LDY }764 LDA #255 STA 764 LDA ($79),Y RTS;GETKEY2 LDA $E425 PHA LDA $E424 PHA RTS;PRINT LDA #0 STA 767 LDA Y ASL }A ASL A ADC Y ASL A STA CNTRL LDA #0 ADC #0 STA CNTRH LDA CNTRL CLC ADC #4 ; LO byte of DL +4 STA CNTRL LDA }CNTRH ADC #DLIST/256 STA CNTRH LDY #0 LDA (CNTRL),Y TAX INY LDA (CNTRL),Y STX CNTRL STA CNTRH LDA X LSR A CLC AD}C CNTRL STA CNTRL LDA CNTRH ADC #0 STA CNTRH LDA X AND #1 STA POS LDY #0 STY PRCHAR+1 STY TEMP LDA PRCHAR CMP #12}8 BCC PRCHRDO2 SEC SBC #128 PHA LDA #1 STA TEMP PLAPRCHRDO2 CMP #96 BCS PRCHAROK CMP #32 BCS PRCHRDO1 CLC ADC #}64 JMP PRCHAROKPRCHRDO1 SEC SBC #32PRCHAROK ASL A ASL A ROL PRCHAR+1 ASL A ROL PRCHAR+1 STA PRCHAR LDA PRCHAR+1 }CLC ADC #HI[CHARSET] STA PRCHAR+1 LDX POSWRTCHAR LDA (CNTRL),Y AND POSTBL1,X STA (CNTRL),Y LDA (PRCHAR),Y AND POSTBL}2,X ADC (CNTRL),Y PHA LDA TEMP BEQ NOINV PLA EOR POSTBL2,X JMP NOPLANOINV PLANOPLA STA (CNTRL),Y LDA CNTRL CLC }ADC #39 STA CNTRL LDA CNTRH ADC #0 STA CNTRH INY CPY #8 BNE WRTCHAR RTSPOSTBL1 DB $0FPOSTBL2 DB $F0,$0FSCRLDOWN L}DA #0 STA 767 JSR VDELAY LDA DLIST+4 STA CNTRL PHA LDA DLIST+5 STA CNTRH PHA LDX #0SCRLDLP LDA DLIST+14,X STA DLI}ST+4,X LDA DLIST+15,X STA DLIST+5,X TXA CLC ADC #10 TAX CPX #240 BNE SCRLDLP JSR ERSLINE PLA STA DLIST+245 PLA S}TA DLIST+244 RTSERSLINE LDA #0 TAYERS1 STA (CNTRL),Y INY CPY #0 BNE ERS1 INC CNTRHERS2 STA (CNTRL),Y INY CPY #3}20-256 BNE ERS2 RTSCLRSCRN LDX #0CLRSCRNL LDA DLIST+4,X STA CNTRL LDA DLIST+5,X STA CNTRH JSR ERSLINE TXA CLC AD}C #10 TAX CPX #250 BNE CLRSCRNL RTSPRTITLE LDA #TITLE/256 LDY #TITLE&255 JMP CIOPRINT;QUIT STA ASCII2 LDA #ASCII2}/256 LDY #ASCII2&255 JSR CIOPRINT LDA #5 STA 85 LDA #11 STA 84 LDA #1 STA 752 LDA #EDOS/256 LDY #EDOS&255 JSR CIOP}RINT LDA J+1 STA 12 LDA J+2 STA 13 JMP ($A);GETFILE LDA #ASCII/256 LDY #ASCII&255 JSR CIOPRINT LDA #34 STA 559GE}TATA JSR GETKEY2 CMP #128 BCC GETN128 SEC SBC #128GETN128 CMP #96 BCC GETN96 SEC SBC #32GETN96 CMP #81 BEQ QUIT} CMP #65 BNE NOATA STA ASCII2 LDA #155 STA ATACHN+1 JMP GOPROMPTNOATA CMP #83 BNE GETATA STA ASCII2 LDA #10 STA AT}ACHN+1GOPROMPT LDA #ASCII2/256 LDY #ASCII2&255 JSR CIOPRINT JMP NOERRPRPRPROMPT LDA #ERROR/256 LDY #ERROR&255 JSR CI}OPRINTNOERRPR LDA #PROMPT1/256 LDY #PROMPT1&255 JSR CIOPRINT LDA #PROMPT/256 LDY #PROMPT&255 JSR CIOPRINT LDA #155 L}DX #0ERFNAME STA FNAME,X INX CPX #20 BNE ERFNAME; LDX #0 LDA #5 STA ICCOM LDA #FNAME/256 STA ICBAH LDA #FNAME&255} STA ICBAL LDA #20 STA ICBLL LDA #0 STA ICBLH JSR CIOV BMI PRPROMPT; LDA FNAME CMP #155 BEQ DIRDO JMP NODIRDOGOB}ACK JMP NOERRPRDIRDO LDX #$10 LDA #12 STA ICCOM+$10 JSR CIOV; LDA #DIRPR/256 LDY #DIRPR&255 JSR CIOPRINT JSR GETKE}Y2 CMP #27 BEQ GOBACK STA DIRPR2+1 LDA #DIRPR2/256 LDY #DIRPR2&255 JSR CIOPRINT LDA DIRPR2+1 CMP #155 BEQ NOGOBACK }STA DIRNM+1 SEC SBC #49 CMP #10 BCS GOBACKNOGOBACK; LDX #$10 LDA #3 STA ICCOM+$10 LDA #DIRNM&255 STA ICBAL+$10 LD}A #DIRNM/256 STA ICBAH+$10 LDA DIRPR2+1 CMP #155 BNE NODOPATH LDA #DIRNM1&255 STA ICBAL+$10 LDA #DIRNM1/256 STA ICBAH}+$10NODOPATH LDA #6 STA ICAX1+$10 LDA #0 STA ICAX2+$10 JSR CIOV;DIRLOOP; LDX #$10 LDA #5 STA ICCOM+$10 LDA #FNAM}E&255 STA ICBAL+$10 LDA #FNAME/256 STA ICBAH+$10 LDA #30 STA ICBLL+$10 LDA #0 STA ICBLH+$10 JSR CIOV BMI DIREND; L}DA #155 STA FNAME+29 LDX #0 LDA #9 STA ICCOM LDA #FNAME&255 STA ICBAL LDA #FNAME/256 STA ICBAH LDA #30 STA ICBLL L}DA #0 STA ICBLH JSR CIOV JMP DIRLOOPDIREND TYA PHA LDX #$10 LDA #12 STA ICCOM+$10 JSR CIOV; LDA #155 STA FNAME }PLA CMP #136 BEQ DIRENDOK LDA #FNAME/256 LDY #FNAME&255 JSR CIOPRINT LDA #ERROR/256 LDY #ERROR&255 JSR CIOPRINTDIREN}DOK JMP NOERRPRDIRNM DB 'D(:*.*'DIRNM1 DB 'D:*.*'NODIRDO LDA FNAME+1 CMP #58 BEQ OKCOLON LDA FNAME+2 CMP #58 BEQ }OKCOLON LDX #17COLONLP LDA FNAME,X STA FNAME+2,X DEX CPX #255 BNE COLONLP LDA #68 STA FNAME LDA #58 STA FNAME+1 L}DA #155 STA FNAME+19OKCOLON; LDX #$20 LDA #12 STA ICCOM+$20 JSR CIOV; LDX #$20 LDA #3 STA ICCOM+$20 LDA #FNAME/25}6 STA ICBAH+$20 LDA #FNAME&255 STA ICBAL+$20 LDA #4 STA ICAX1+$20 LDA #0 STA ICAX2+$20 JSR CIOV BMI GPRPRMPT RTSGP}RPRMPT JMP PRPROMPTCIOPRINT STA ICBAH STY ICBAL LDA #9 STA ICCOM LDA #255 STA ICBLL STA ICBLH LDA #0 STA 767 TAX} JMP CIOVTITLE DB 125,127,127,126 DB '츰 v1.5' DB 29,29,156 DB 'by Itay Chamiel - September 1992' DB 29,156 DB 'b}ruck@brachot.jct.ac.il',29,155ASCII DB 29,156,'tari EOL or Acii? (or Q for DOS)',29,156,'?',28,155ASCII2 DB 0PROMPT1 DB} 155PROMPT DB ' Input DEV:filename:',155ERROR DB 'Error - try again!',155EDOS DB 'Exiting to DOS, please wait...',155D}IRPR DB 'Directory: drive #? (1-9)',155DIRPR2 DB 27,0,155XCHARS DB 0,34,102,238,238,102,34,0 DB 0,136,204,238,238,204,1}36,0;GETBYTE LDX #$20 LDA #7 STA ICCOM+$20 LDA #LO[CHARSET-BUFFER] STA ICBLL+$20 LDA #HI[CHARSET-BUFFER] STA ICBLH+$}20 LDA #BUFFER/256 STA ICBAH+$20 LDA #HI[BUFFER-1] STA BUFPLC+1 LDA #BUFFER&255 STA ICBAL+$20 LDA #LO[BUFFER-1] STA B}UFPLC JSR CIOV BMI DSKERRDSKERROK RTSDSKERR CPY #136 BEQ DSKERROK PLA PLA TYA PHA JMP ADSKERRVDELAY LDA $14VDEL }W CMP $14 BEQ VDELW RTSPRMESG STA PRLEN STY PRFROM STX PRFROM+1 LDY #0 CPY PRLEN BEQ PRMESGENPRMESGLP LDA (PRFROM) },Y STA PRCHAR TYA PHA JSR PRINT INC X PLA TAY INY CPY PRLEN BNE PRMESGLPPRMESGEN RTSEOFPRN DB ' 堭 }'DOHELP LDA #HDLIST&255 STA 560 LDA #HDLIST/256 STA 561 JSR GETKEY LDA #DLIST&256 STA 560 LDA #DLIST/256 S }TA 561 RTSFNAMEBUFFER=FNAME+30;; (c) 1992 Itay Chamiel;1 JSR GETKEY LDA #DLIST&256 STA 560 LDA #DLIST/256 SDCol80 - An 80-column file reader - ver 1.5 By Itay Chamiel Bug reports to me at: bruck@brachot.jct.ac.il (I}nterNet) Following a discussion in comp.sys.atari.8bit, I decided to write my own 80- column file reader, as a demonstration} of just how fast an 80-col screen can go. This program will ask for a filename, will read it, and will output it to the scre}en, in an 80x25 character matrix. Download the file COL80.OBJ from the Archive. Load using option 'L' of DOS. This program s}hould work with all DOSes, but has only been tested against MyDOS and Atari DOS 2.0 and 2.5. Once loaded, it will display th}e title screen, and prompt: [A]tascii EOL of A[s]cii? (or Q for DOS) _ At this point, you may either [Q]uit to DOS, or type:} A - reckognize $9B (155 - Atari EOL) as the EOL S - reckognize $0A (10, ^J - Ascii) as EOL After that, it will ask you for} the filename to read. You may input just the filename for use with D:, of input the full device name (even C: if you want), }and press to confirm. You may also press just for a directory listing. Upon pressing without a fi}lename, it will ask you for the drive number. Just hit 1 to 9 to use Dn:*.* , or again to use D:*.* .. The directory} will display, and you will be back at the filename prompt. After typing a filename, the program will attempt to open the fi}le. Upon any error, it will notify you with a "Error - try again!" and let you re-enter the name. You can use any type of d}evice or density, RAMdisks, Hard-disks etc., since it uses CIO and depends only on the DOS you are using. If the file opene}d successfully, the 320x200 display list will be set up, and the file will be read. If there is any error (including )}, you will be put back at the prompts for another try. When the buffer fills, or the end-of-file is reached, the file will s}tart outputting the first page. The program will use the EOL you specified, and will also use 127 as a TAB. Note that TAB onl}y skips 5 spaces, it's not a real one.. After the page has been printed, you can use: - Dump another page (botto}m line goes to the top) - Dump one line - Help, display some info. Any key to go back to file. } - Quit, go back to the prompts. (Not to DOS) - Restart program. Inits Disk handler and returns to prompts.  } If the file was larger than the buffer, the buffer will refill when it finishes dumping to the screen. This means that you'l!}l see the printing suddenly stop and see the disk-drive grind away. As soon as the buffer refills, the printing will continue"} from exactly where it left off, i.e. it'll finish the page/line it was in the middle of. This means that you'll hardly notic#}e it if you're using a RAMdisk. When the end of file is reached, you will be told. The only thing to do here is to hit 'Q' t$}o get back to the prompts. Technical notes The speedy scrolling is achieved by using a simpl%}e trick. Each text-line (every 8 mode F lines) are controlled by an LMS instruction in the Display list. When scrolling, each&} LMS gets the address of the LMS after it, and thus all lines appear to move up. The top line is then assigned to the LMS in '}the bottom, and it's 320 bytes (40*8=320) are then physically erased. How it was done Col80 w(}as written from scratch using the T:EDIT text editor and assembled using A65. The character set was created using a character)} editor (duh) and appended to the assembled object file. The final object file was optimized (removed all the binary-file hea*}ders which A65 loves adding for some stupid reason) using a home-brewed program of mine in Turbo BASIC (actually Frost Basic)+}. I then sent it to the Atari Archive for all the world to use and enjoy!! Oh well, I guess that's it.. Happy reading!! :-),} Itay Chamiel September 12, 1992 ve for all the world to use and enjoy!! Oh well, I guess that's it.. Happy reading!! :-)#'*J)1pp0B_)pppppAJ)츰젭 ? - Help .}- Line down - Page down Q - Quit yyz/}_)ɀ88f` i`8 e_)֥ * * * H / 1 O1 ."/hɀ:0 0}0 L.L*/ O1yyz ."/ O1 L./ O110ip0Oȥi@1}ȥiȑȑȑȑȑȑȑi iоAȩȩp0 ."/ 12}+++L+mh1mig+,+接揥Ő őL) -惥PЩ报Œ愥мƄ -L+3}iPL, , L,ɛƊL,qHL,? 1L8,*#  ,ɛ ? 1Lu,qHL, -1u V1 4},? 1L,qH`  V`,鍤  VhLq*SЬy`%H$H` e ii5}iȱJei)ɀ 8Hh` i@Lq-8 & &i=-=-qHh]-L-h6}i'i` O1HHi -hh`憑@` -i `0.L7}000 0U T0 0* * l 0| 0"/ -ɀ8`8 QA 0+L.S؍0 +0 0L.0 008} 00 01B1EDHI V01ɛL/L. R V0 0 - 11 0 1ɛ /81 ʢR9}T/U 1ɛ T/UZ[ VRT1UXY V0&1 BD1EHI VLB/H R V䩛:}1hɈ1 00 0L.D(:*.*D:*.*1:#1:11D1:11 b V b1edjk V0`L.E;}D BHILV}~츰 v1.5by Itay Chamiel - September 1992bruck@brachot.jct.ac.iltari EOL or Acii?<} (or Q for DOS)? Input DEV:filename:Error - try again!Exiting to DOS, please wait...Directory: drive #? (1-9)"f=}f"̈ b;hfi1e1ōdą V0`hhHL,`ċH -hċ` 堭Ѡ>}J0)1 ,01`DDDDDDfD"D"D"DDD"DDD"DDDD"DDDDDDDDDD?}DDDD""DDDDDDDDD"D"""f""""D̪D"DDDDDDf"DDDDD@}"DD"D"DD"DDDfD̪̪ff̪ffDDDDf"""D̪A}"̪̈"̪̪fD""DDDDDDDDDDDD"DfB}DDDDfDD""DDDDDDDDDDwwDDDDDDDDDDDDDDD""DDDD""33ww3333C}3333DDwwDDDDDDDDDDDDDDDDDDDDwD}wDfDDDDDDDDDDDDD""DDDDD"̪ff""ffDffff"̪DDDDDE}"""""̪DDDD̪DD̪̈ff""ffD"DDDDfDDDfF}""DDDDDDDDDDD̪""TTTTTT̈ff""ffD"DDDDfDDDf2 Here is a NEWER version of col80, with added Directory-listing ability. Please erase ALL other col80.arc's in the Archive, aH}s they are useless. Also note, that this one includes the (barely commented) source code, in A65 format, so it is longer. , az9&XO.S.S. has done it again! A.C.S. did it for them. And now I'm doing something for you!  !J}B JKIHiDiELV`L  BLV`1Ll L &` !K}Fj`8冨凪` <EӅӥ <`ʆǪƩ Ɛee` MƦʆǢ &!L}eǐ q qL8 M'&&&8儨児祂*L8&&*ń8&&L8 `h!M}ihiHHȱȱLc !#3`LJJJJ`H h`Hȩh!N} L^ L^ L^ L^ H8`HhHh L^ BHI V䅠L^!O} L L^Ԇ ؠPIPP` 8P L^ ZL  8L_ sL.H-!P} )8塪墨hLs L  L. 8ȹP`텠8堨塪 8芨Oȩ-`PP P!Q}棩 Ѥģ0-ģ6000:,80H & &ehe&eģ0ʥ 8堅塅`$ "!R}&*i0:0i "Ʀ`¢ 护°ڱ%ȱ%E "L 担CS L I !S}L H L ZL &B V ^NLMȑ` MLN%B VL^S:o!E:t!H  w!x!  !T}h)0Ir!s!L[\ZUVT` !r!s!` !L2 !L !L%) ` !L2!U} ` 0d ҥ `2)2ҩ`p`0)9n"`@0)ӈJJJJ)`!V}Ѕ`ȱ`` "ȥ`HhƣĢ`ƥĤ`!W}Ѣ -#`ȱѢĦ`膡``ťƤe8夰LC# !X}Ƥ8`ŦeѠe桊LG#________________ |'M;|L#ҩ0Ҡ ` L##!Y}#L3$ # !"# #L-$#L$#L$ >"`L:$ #ILO$LB$ #`L[$l La$LLi$ i! imd$!Z}i "e$e$IL$d$e$d$#e$ILi$d$#`)e which is__ |'M;| developed undac/65, as opposed L![}$RSi$$ $_$i#`$i### i i ^$ f$ ƅ#  L%נ!\} %n L%Į% $IL%L&$$L&$$%%$LN&_$ $!]}$ P#$$L/&$$I L)&.$$$L &|$$ ILH&LN&$L%$$IL&IL&Lo&堭&h !^} 7$ $L&$ $ $L%   X$``$|$$ ILH&LN&$L%$$IL&IL&Lo&堭&h 9***********************************************DOCUMENTATION FOR WDIR.COM v.1.00**WITH ADDENDUM FOR VER 1.11A & 1.11Bby %`}Jon Melbo***********************************************INTRODUCTION:Hello and welcome to my first release of 'WDIR.C%a}OM'. Just what is WDIR anyway you ask? Well basicly it is an Atari8 implimentation of the WDIR command available on (heaven%b} forbid) MSDOS machines. It stands for Wide DIRectory, and that is pretty much what it does. It is meant to be used under S%c}partaDOS_X or 3.2x. Instead of providing the detailed (often unnecessary AND space hogging) file information that the standa%d}rd DIR command gives, it just provides the filename, extension, and size. It does this in an organized columnar format which%e} fits many more files on the screen at once. This format often comes in more handy.HOW TO USE WDIR:It is fairly simple %f}to effectively use WDIR. On the CL, simply type the command WDIR, followed by an optional parameter. The parameter is the d%g}rive, pathname, and file match specification. For this version, only SDX users my exclude the parameter. SD32.x users must %q}4B%DOS SYSB*)DUP SYSBSCOL40 CTBBDkCOL40NEWDOCB^COL80 ASMB COL80 DOCB-COL80 OBJBGCOL80 TXTBIDIRW COMB5_DIRW DOCB%DIRW111AACTB*DIRW111BACTB=DIRWDOC PRTB)GET_PARMM65BX>RUNTIME COMBWDIR TXTinclude a valid parameter to make use of the external command. Example follows: VALID USAGE ----------------%r}--------------- WDIR D8:*.* WDIR D:>DVLP>*.M65 WDIR D2:>UNFNSHED>*.ACT WDIR D:*.* %s} INVALID USAGE ------------------------------- WDIR *.* WDIR >DVLP>*.M65 WDIR D2:>%t}UNFNSHED> WDIR D:SDX users who do not include a parameter will get a directory of all files in the current work%u}ing directory of the current default drive. Very convenient.TECHNICAL INFO:I wrote WDIR using a combination of Action! a%v}nd assembly language. Although the program does not take up much memory, it requires that you have at least a 48K machine. %w}This is due to over paranoia on my part of memory conflict. I plan to pull the two main segments of the code closer together%x} in a later version. WDIR uses memory from $2551 through $2F07, and $6000 through $607F. In order to use the 6502's inderec%y}t Y indexed addressing, I found it necessary to use two adjacent page zero locations as a pointer. The locations are $CB and%z} $CC. Use of thses locations may interfere with some applications, particularly with programming languages. These locations%{} are safe with both Action! and BasicXL, and maybe others. I do know that their use is not okay with MAC/65. The best polic%|}y is not to use the command while a language is currently active. WDIR will work fine, but depending on how or if the applic%}}ation saves or preserves its page zero locations, you could possibly tweak something with the application. For those of you %~}wondering about using WDIR with no parameter, WDIR simply provides a "D:*.*" in the open directory code. Thus, SD32.x users %}will get a listing for drive 1, regardless of what the default drive is should they choose not to use a paramter.FINAL WOR%}DS:WDIR is NOT in the PUBLIC DOMAIN, but is rather 'shareware'. In order to encourage me to enhance this program, and even%} write new ones, I ask for a small contribution for my efforts should you find it useful to you in some way. A contribution %}of $8.00 (I like the number 8) is requested. You may freely distribute this software as long as doing so meets the following%} criteria: a) This DOC file with this message is included in the ARC file along with the WDIR.COM program itself. %} b) No form of payment is collected as a result of distributing this software. Please support Atari8 shareware software au%}thors, they are all we Atari8 users have left. Don't cheat them. User groups may pay a registration fee of $25.00 and allow%} all current paying (at time of registration) members to use the software without the need for individual registration. Plea%}se send registration fee to the following address, along with your name, mailing address, phone number, and brief description%} of system hardware to: Jon D. Melbo PSC #2 Box 2288 Hickam AFB, HI 9685%}3 GEnie J.MELBO1 Enjoy WDIR! **************************************VER 1.1%}1A & 1.11B ADDENDUM**************************************-- WDir is now called DirW. This is closer to the MSDOS command %}"DIR /W", and therefore more applicable.-- DirW no longer requires a 48K machine, as code has been consolidated starting at%} $???? and ending at $????.-- Note should be taken that this program has not been tested on any DOS other than SDX 4.20. T%}heoreticly it should maybe work on other SpartaDOS versions. It will most certainly not work with any non CL driven DOS, of %}course it would serve no real purpose in such an environment anyway.-- In my own testing I noticed a bug which shows up on %}directories which have entries with no time/date info stamped to them. Anytime such entries are encountered, they cause the %}alignment of the display to be offset. I am planning to look into this trivial pesty problem as my schedule allowes. Soluti%}on? You have three options. They are 1) dont use this program, 2) don't let a wierd display bother you on the few occasions%} they may ocurr, or 3) use the CHTD command to stamp a time/date on any files which do not have any.-- The assembly routine%} no longer requires use of any page zero addresses. This is in large part possible due to a programming trick which has the %}code modify itself. A nice gentlemen on GEnie tipped me off to the concept, and I only regret that I am unable to remember w%}ho it was so that proper credit can be given. Now, if that weren't nifty enough, I've even found a way to accomplish this wi%}thout assembly at all! More on that in the following comment.-- Program now is written ENTIRELY in Action! No assembly ro%}utine is now needed. I call this version v.1.11B. The version which does use a separtely assembled routine is v.1.11A. The%} DIRW.COM file in this ARC is v.1.11B. Source code is included for BOTH versions 1.11A & 1.11B.-- Program is no longer "Sh%}areware". I am donating it to the public domain. No donation is requested as contingent on usage of this program. You may %}of course donate if you wish, or send me a program of your own or whatever. None is required, but I would love to hear from %}any of you die hard Atari8'ers out there.-- Finaly, the how to reach me info is currently: Jon D. Melbo %} 1122 Well st. Onalaska, WI 54650 GEnie J.Melbo1 Again, enjoy DirW! Jon D. Melbo $g;+----------------------------------+;| PROG NAME: DIRW.ACT |;| VERSION #: 1.11-A |;| AUTHO)}R: JON D. MELBO |;|START DATE: 24-Oct-91 |;|COMPL DATE: 30-Sep-92 |;| LAST EDIT: 05-Sep-9)}2 +---------------------------------------+;| )} |;|PURPOSE / FUNCTION: |;| To provide an external command for )}SpartaDOS which will display a "wide" |;| directory. The program is made to put two columns of directory on a____ |;| 40-c)}olumn screen, and four on an 80-column. It will read the SpartaDOS_ |;| CL for any pathname or filespec mask that may be gi)}ven._________________ |;| ________________________________________________________________________ |;| ____________________)}____________________________________________________ |;| ___________________________________________________________________)}_____ |;| |;|RELATED FILES LIST: )} |;| GET_PARM.M65 - source for Get_Parm routine._____________________________ |;| _____)}___________________________________________________________________ |;| ____________________________________________________)}____________________ |;| ________________________________________________________________________ |;| _____________________)}___________________________________________________ |;| ____________________________________________________________________)}____ |;| ________________________________________________________________________ |;| _____________________________________)}___________________________________ |;| |;|ADDITIO)}NAL COMMENTS: |;| This version (1.11-A) is designed to use the Get_Parm)} routine which is__ |;| developed under Mac/65, as opposed to version 1.10-B which attempts to__ |;| read the SpartaDOS CL )}parameter under its own environment.______________ |;| _____________________________________________________________________)}___ |;| ________________________________________________________________________ |;| ______________________________________)}__________________________________ |;| |;+--------)}------------------------------------------------------------------+;START COMPLILING FOR $20FF, THAT SHOULD GIVE THE GET_PA)}RM ROUTINE AT;$2000 PLENTY OF ROOM.SET 14=$20FFSET $491=$20FFINCLUDE "D8:\ACT_UTIL\SYS.ACT"MODULE ; global vars B)}YTE Key_Code=764PROC Dow_Bell() ; relocatable code block to ring a "bell"[$A9$00$8D$08$D2$A9$30$8D$00$D2$A0 $B0$A2$FF$8E)}$0A$D4$CA$D0$FA$88$8C $01$D2$C0$A0$D0$F0$60]PROC Duck_Bell() BYTE Loop, Delay FOR Loop=0 TO 254 DO Sound(0,Loo)}p,10,12) FOR Delay=1 TO 12 DO OD OD SndRst()RETURNPROC Detect_Keypress() Key_Code=255 ;reset key buff Dow)}_Bell() WHILE Key_Code=255 DO OD Key_Code=255 Duck_Bell()RETURNPROC Go_DOS() ; no "RETURN" is needed since we jus)}t go to DOS from here [$6C$0A$00]PROC Get_Parm=$2000(CARD PRMADR) ; dummy proc, no "RETURN" neededPROC DirW() CHAR )}ARRAY Parm(64), ; this will hold the parameter Dir_Ln(41), ; used for reading dir Fld_Data(21) B)}YTE lm=82, rm=83, sw, ln=[1], col=[1], ec, i=[0], max_fld_cols lm=0 sw=rm+1 max_fld_cols=sw/20 Get_Parm(Parm) ; )}call the Get_Parm routine and pass it the addr of ; the Parm var. Close(1) Open(1,Parm,198,0) ;aux1=6+64+)}128 (dir+attrib scan+extended) PutE() PrintE("נ") PrintE("Į") ln=4 DO)} IF EOF(1)=136 THEN EXIT FI ; end of file so quit processing dir i==+1 IF i>4 ; yes, we have gotten past the dir )}header lines THEN FOR col=1 TO max_fld_cols DO InputSD(1,Dir_Ln) SCopyS(Fld_Data,Dir_Ln,1)},20) FOR ec=1 TO 19 DO IF Fld_Data(ec)=32 THEN Fld_Data(ec)= '. FI OD Fld_)}Data(20) = '| Print(Fld_Data) IF EOF(1)=136 THEN EXIT FI OD ln==+1 IF ln=24 AND EOF(1)<>13)}6 THEN Print("堭") Detect_Keypress() PutE() ln=1 FI ELSE ; no! we're still on t)}he dir header InputSD(1,Dir_Ln) PrintE(Dir_Ln) ln==+1 FI OD Close(1) PutE() Go_DOS()RETURN t({;+----------------------------------+;| PROG NAME: DIRW.ACT |;| VERSION #: 1.11-B |;| AUTHO-}R: Jon D. Melbo |;|START DATE: 05-Jul-92 |;|COMPL DATE: 30-Sep-92 |;| LAST EDIT: 30-Sep-9-}2 +---------------------------------------+;| -} |;|PURPOSE / FUNCTION: |;| To provide an external command for -}SpartaDOS which will display a "wide" |;| directory. The program is made to put two columns of directory on a____ |;| 40-c-}olumn screen, and four on an 80-column. It will read the SpartaDOS_ |;| CL for any pathname or filespec mask that may be gi-}ven._________________ |;| ________________________________________________________________________ |;| ____________________-}____________________________________________________ |;| ___________________________________________________________________-}_____ |;| |;|RELATED FILES LIST: -} |;| ________________________________________________________________________ |;| _____-}___________________________________________________________________ |;| ____________________________________________________-}____________________ |;| ________________________________________________________________________ |;| _____________________-}___________________________________________________ |;| ____________________________________________________________________-}____ |;| ________________________________________________________________________ |;| _____________________________________-}___________________________________ |;| |;|ADDITIO-}NAL COMMENTS: |;| _____________________________________________________-}___________________ |;| ________________________________________________________________________ |;| ______________________-}__________________________________________________ |;| _____________________________________________________________________-}___ |;| ________________________________________________________________________ |;| ______________________________________-}__________________________________ |;| |;+---------}------------------------------------------------------------------+INCLUDE "D8:\ACT_UTIL\SYS.ACT"MODULE ; global vars -}BYTE ARRAY Parm(29) ; this will hold the parameter BYTE Key_Code=764 CARD POINTER TEMP CARD DOSVEC=$0APROC Dow_Bell(-}) ; relocatable code block to ring a "bell"[$A9$00$8D$08$D2$A9$30$8D$00$D2$A0 $B0$A2$FF$8E$0A$D4$CA$D0$FA$88$8C $01$D2$C0$-}A0$D0$F0$60]PROC Duck_Bell() BYTE Loop, Delay FOR Loop=0 TO 254 DO Sound(0,Loop,10,12) FOR Delay=1 TO 12 -}DO OD OD SndRst()RETURNPROC Detect_Keypress() Key_Code=255 ;reset key buff Dow_Bell() WHILE Key_Code=255 DO -} OD Key_Code=255 Duck_Bell()RETURNPROC Go_DOS() ; no "RETURN" is needed since we just go to DOS from here [$6C$0A$00-}]PROC ZCRNAME(); again, no RETURN as SDX ZCRNAME has its own RTS[$4C $FFFF]PROC Fill_Parm() BYTE count=[0], chr DO -} chr=Peek(DOSVEC+33+count) ; may have to pre calc argument here IF chr<>$9B THEN count==+1 Parm(count)=chr -} FI UNTIL chr=$9B ; char retrieved is an EOL OD Parm(0)=count ; adjust LEN byteRETURNPROC DirW() CHAR ARRAY Dir_Ln(-}41), ; used for reading dir Fld_Data(21) BYTE lm=82, rm=83, sw, ln=[1], col=[1], ec, i=[0], max_fld_co-}ls lm=0 sw=rm+1 max_fld_cols=sw/20 TEMP=ZCRNAME+1 ; point TEMP to the $FFFF operand of ZCRNAME proc TEMP^=DOSVEC+-}3 ; change the $FFFF to the real addr which is looked up ; at COMTAB+3 (DOSVEC points to COMTAB) ZCRNAM-}E() ; this places the next CL parameter at COMFNAM;DEBUG NOTE- what if ZCRNAME had NO parm to process?!?! Fill_Parm() ; co-}nvert the EOL-ending type string at COMFNAM into a ; LENgth-byte string in Parm byte array Close(1) Open(1,P-}arm,198,0) ; aux1=6+64+128 (dir+attrib scan+extended) PutE() PrintE("נ ") PrintE("-}Į") ln=4 DO IF EOF(1)=136 THEN EXIT FI ; end of file so quit processing dir i==+1 IF i>4 ; yes, we ha-}ve gotten past the dir header lines THEN FOR col=1 TO max_fld_cols DO InputSD(1,Dir_Ln) S-}CopyS(Fld_Data,Dir_Ln,1,20) FOR ec=1 TO 19 DO IF Fld_Data(ec)=32 THEN Fld_Data(ec)= '. FI -} OD Fld_Data(20) = '| Print(Fld_Data) IF EOF(1)=136 THEN EXIT FI OD ln==+1 -}IF ln=24 AND EOF(1)<>136 THEN Print("堭") Detect_Keypress() PutE() ln=1 FI ELSE-} ; no! we're still on the dir header InputSD(1,Dir_Ln) PrintE(Dir_Ln) ln==+1 FI OD Close(1) PutE(-}) Go_DOS()RETURN the dir header InputSD(1,Dir_Ln) PrintE(Dir_Ln) ln==+1 FI OD Close(1) PutE(, *********************************************** DOCUMENTATION FOR WDIR.COM v.1.00 **WITH ADDENDUM FO1}R VER 1.11A & 1.11B by Jon Melbo *********************************************** 1} INTRODUCTION: Hello and welcome to my first release of 'WDIR.COM'. Just what is WDIR anyway you ask? Well 1}basicly it is an Atari8 implimentation of the WDIR command available on (heaven forbid) MSDOS machines. It stands 1}for Wide DIRectory, and that is pretty much what it does. It is meant to be used under SpartaDOS_X or 3.2x. Instead of1} providing the detailed (often unnecessary AND space hogging) file information that the standard DIR command gives,1} it just provides the filename, extension, and size. It does this in an organized columnar format which fits many 1}more files on the screen at once. This format often comes in more handy. HOW TO USE WDIR: I1}t is fairly simple to effectively use WDIR. On the CL, simply type the command WDIR, followed by an optional parameter.1} The parameter is the drive, pathname, and file match specification. For this version, only SDX users my exclude 1}the parameter. SD32.x users must include a valid parameter to make use of the external command. Example follows:1} VALID USAGE ------------------------------- WDIR D8:*.* WDIR D:1}>DVLP>*.M65 WDIR D2:>UNFNSHED>*.ACT WDIR D:*.* INVA1}LID USAGE ------------------------------- WDIR *.* WDIR >DVLP>*.M65 1} WDIR D2:>UNFNSHED> WDIR D: SDX users who do not include a parameter w1}ill get a directory of all files in the current working directory of the current default drive. Very convenient. 1} TECHNICAL INFO: I wrote WDIR using a combination of Action! and assembly language. Although t1}he program does not take up much memory, it requires that you have at least a 48K machine. This is due to over paranoia1} on my part of memory conflict. I plan to pull the two main segments of the code closer together in a later versio1}n. WDIR uses memory from $2551 through $2F07, and $6000 through $607F. In order to use the 6502's inderect Y inde2}xed addressing, I found it necessary to use two adjacent page zero locations as a pointer. The locations are $CB and 2} $CC. Use of thses locations may interfere with some applications, particularly with programming languages. These lo2}cations are safe with both Action! and BasicXL, and maybe others. I do know that their use is not okay with MAC/652}. The best policy is not to use the command while a language is currently active. WDIR will work fine, but depend2}ing on how or if the application saves or preserves its page zero locations, you could possibly tweak something with the2} application. For those of you wondering about using WDIR with no parameter, WDIR simply provides a "D:*.*" in the2} open directory code. Thus, SD32.x users will get a listing for drive 1, regardless of what the default drive is s2}hould they choose not to use a paramter. FINAL WORDS: WDIR is NOT in the PUBLIC DOMAIN, but is ra2}ther 'shareware'. In order to encourage me to enhance this program, and even write new ones, I ask for a small con2 }tribution for my efforts should you find it useful to you in some way. A contribution of $8.00 (I like the number 8) is2 } requested. You may freely distribute this software as long as doing so meets the following criteria: 2 } a) This DOC file with this message is included in the ARC file along with the WDIR.COM program itself. 2 } b) No form of payment is collected as a result of distributing this software. Please support Atari8 shareware soft2 }ware authors, they are all we Atari8 users have left. Don't cheat them. User groups may pay a registration fee of2} $25.00 and allow all current paying (at time of registration) members to use the software without the need for ind2}ividual registration. Please send registration fee to the following address, along with your name, mailing address, pho2}ne number, and brief description of system hardware to: Jon D. Melbo 2} PSC #2 Box 2288 Hickam AFB, HI 96853 GEnie J.MELBO1 2} Enjoy WDIR! ************************************** VER 1.11A & 1.11B2} ADDENDUM ************************************** -- WDir is now called DirW. This is closer to the MSDOS com2}mand "DIR /W", and therefore more applicable. -- DirW no longer requires a 48K machine, as code has been 2} consolidated starting at $???? and ending at $????. -- Note should be taken that this program has not been tested2} on any DOS other than SDX 4.20. Theoreticly it should maybe work on other SpartaDOS versions. It will most certa2}inly not work with any non CL driven DOS, of course it would serve no real purpose in such an environment anyway. 2} -- In my own testing I noticed a bug which shows up on directories which have entries with no time/date info s2}tamped to them. Anytime such entries are encountered, they cause the alignment of the display to be offset. I am 2}planning to look into this trivial pesty problem as my schedule allowes. Solution? You have three options. They are 2} 1) dont use this program, 2) don't let a wierd display bother you on the few occasions they may ocurr, or 3) use the2} CHTD command to stamp a time/date on any files which do not have any. -- The assembly routine no longer requ2}ires use of any page zero addresses. This is in large part possible due to a programming trick which has the code 2}modify itself. A nice gentlemen on GEnie tipped me off to the concept, and I only regret that I am unable to remember w2}ho it was so that proper credit can be given. Now, if that weren't nifty enough, I've even found a way to accompli2 }sh this without assembly at all! More on that in the following comment. -- Program now is written ENTIRELY i2!}n Action! No assembly routine is now needed. I call this version v.1.11B. The version which does use a separtely2"} assembled routine is v.1.11A. The DIRW.COM file in this ARC is v.1.11B. Source code is included for BOTH versions 1.12#}1A & 1.11B. -- Program is no longer "Shareware". I am donating it to the public domain. No donation is2$} requested as contingent on usage of this program. You may of course donate if you wish, or send me a program of y2%}our own or whatever. None is required, but I would love to hear from any of you die hard Atari8'ers out there.2&} -- Finaly, the how to reach me info is currently: Jon D. Melbo 1122 Well 2'}st. Onalaska, WI 54650 GEnie J.Melbo1 Again, enjoy DirW! 2(} Again, enjoy DirW! 0M I=G=H=K=L=J=EM7;======= Get_Parm routine for WDir program ========&X;****************************** #X;Get_P6*}arm routine to be used as!X;a code block for the Action!!X;W_Dir program. This routine$&X;started 25-Oct-91 by Jon D. M6+}elbo.#X;******************************8X;BX; general equatesL EOLVX;`X; SpartaDOS equates j COMTAB t6,}ZCRNAME~BUFFOFF COMFNAM!X; ;; or whatever... !STARTX;X; allocated space for varsATMPPRM6-};; this is a temporary storrage area for the CL parmX; START/X; save the addr in the A & X regs to prmadr3X; Act6.}ion! will pass the addr via the A & X regs>X; check Action! manual to see if A is low and X is high...PFKPRMADR1 P6/}FKPRMADR2PFKPRMADR3&FKPRMADR1(&FKPRMADR22&FKPRMADR3<X;F;X; set up the addr of ZCRNAME in our60} fake crunch routineP%>ZCRNAMEZ Q@COMTAB7dPCRUNCHn%>ZCRNAMEx Q@COMTAB7PCRUNCHX;(X; main rou61}tine X; CRUNCHCFNEGPRM;; there were no parameters on th CL if CRUNCH (ZCRNAME)$X; 62} set the Z flagX;JX; ok, there was some parameter data on th CL, copy COMFNAM into TMPPRM%%>COMFNAM;; used to in63}dex COMFNAM$>;; used to index TMPPRM LOOP1)Q@COMTAB7;; read next byte at COMFNAM(PTMPPRM9;; store read byte in 64}TMPPRM32"(R>EOL;; check if byte read is an EOL,$HLOOP1;; still more valid bytes!6GX; an EOL was encountered, whole65} parameter has been stored in TMPPRM@X;J#X; copy TMPPRM into Action! ParmT%$>;; used to index TMPPRM & FPA1^ LOOP2h)66}QTMPPRM9;; read data from temp bufferr=R>EOL;; we DONT want to stor an EOL in an Action! string!| FSTRLNGTH;2;; store 67}in action string 1 thru LEN, NOT 0 thru LEN-1!*FKPRMADR1P9;; store in Action! Parm !LOOP2 STRLNGTH@FKPRMADR2&68};; put it as the 0th byte of Parm (length byte)X;#DONE:;; end of routine Get_ParmX;X; fake crunch routine9CR69}UNCH!;;the operand for this jmp will be replacedX;GX;this is what to do if no parameters were found on the command li6:}ne NEGPRMDFLTPARM =AD:*.*A3X; copy default parameter into Action's Parm var$>;; indexing purposes&LOOP3Q6;}DFLTPARM90EFKPRMADR3P9;; store it in parm addr, $FFFF will be substituted:(X; at run timeD4(DF6<}LTPARM;; check if last char was read & storedN FDONE;; yup, now we're done!X"2;; nope, still more to copy...b0!LOOP3;; g6=}o back up and do copy next char...ad & storedN FDONE;; yup, now we're done!X"2;; nope, still more to copy...b0!LOOP3;; g4"} }  Lll L"! L"! VL"! l Lq!! "!LD:*.*S:P:E:l"!q"H) :?}h(`ӅԄՠ`ӅԄՠԨ`L)ӑ) `Ӣhh@,lHH!HwHHHHHӍl"H!H:@}yHl !`GHFHJ*K+\`* `Ӧee褌%ƉƋL"!:A}Ӡȱȱȱ㦌L"! ` ` `2a$%Ȏ!!xө~!!:B} ` `@X ` ~  } Ӣ ʎDy` SLD1:AUTORUN.CTBՠԢӱԙӹ:C}`֝DEIHB V0Z3ڝDa۝E8օܥׅݥܝHݝI V04Ӡڑڑ0:D} BLVl `˩`80 ` .JJJJ)iFiFi1FicFi'ȐȦoFiUȐFii:E}Fi#iFiGi Fii@F iiFiiciՊFigi'iՊօשBL`I))83:F}Ԥԥդե֤֥פץؤإ٤LK6"ХLaLaLa:G}E0:e٥eإeץe֥eՐ؅٥ׅإօץՅ֩L8٥إץ֥հ'I8م٘؅ؘׅט:H}օ֘ՅLؤm\G0Q@Ն֩م؅2եمֆשم"ե؅֥م׆ةեׅ֥؅ץم؆لԘ)q:I} ` ? 7i ? %!Ls`ԅՅօׅ؅م`ԍՍ֍:J}׍؍ٍ`ԍՍ֍׍؍ٍ``, Խսֽ׽ؽ` ,:K}`+ĕ ԅ)@ޥ)JJJe)e e Je0F g:L} Lm8`@ԠՈքׄ؄`==W3>Tvb>2b'?h`06?2'A?%C4Vu?f'70P@U??CBH ? & ? QL:M}m8`0 I@ԥ) oǢҠ 1  ؠ e Q ?P ¥Ii )ԅ +ĕ:N}Lm`@"wf?IWQpIG?9 Wa9cU? 0d? 9`?BXGB?7?()q?D>DIh8E?hyx? )D?@ (1V?:O}wD3331??xS48`$)Ԧƅƅƅƅƅƅ mť)8@0$Յ)e)e F:P} 䰃 e Q F I`U9>`D'RFuCU?b9dYdg@W2@?tS)%)@0)%ԅ:Q}P 1 ;  e°0 Q (Vŕ ԅԥ  ƕ m`8``0?i? Q :R}ԍՍ֍׍؍ٍ * m N ǥ N 0 -åJeF g`L ) e٥eإe:S}ץe֥eՊi؊؅٥ׅإօץՅֆե1ԥ'JffffJffffJffffJffffم`ԩ&&&&*&&&&*&:T}&&&*&&&&*``ۄܱ T **m ȰҠݤܱEۅڦڱ= bܥeƥ:U}iեL@ ` **)]P` 00`` ( ((((((((8`W)ߥ & &e:V} &߽aȅŊِ׼Ȅ⹕ȍqȅJJJJ&eXޥeYߥ䥈 9ȅFfЎᰈ Tȍ`Ȅ佘ȅ :W}M 8*` Ȱi祍La L< ʘ0  L :X} ȑ  L ʘ# ` |ʠ)ȱ Lt nʤ n |ʠ)ȱ):Y} `ʠ)ȱ ʆ8ƍ0eސ`Ɗ8ް`)ȱJJJ```=:Z}`]``` H} h`Pi`)JJJeԅԘ)Peԅ`եԆ8@EB)JJJeԅԥ)Pe:[}ԅԘ)eԅԽeՅ՘)JJJ}˅ԥ}˅`)JJJeԅԥ)PeԅԹeԅԹeՅդЧ` 0@P`'Nu pX@(#:\}d,X L `8` ¥E)))8@8e0 څۅ܅݅ޅ߄ԠF0y ޥy ݥy ܥy ۥy:]} ڥy و0ǠF0y ݥy ܥy ۥy ڥy ٥y ؈0ǠF0y ܥy ۥy ڥy ٥y إy:^} ׈0ǠF0y ۥy ڥy ٥y إy ץy ֈ0ǠF0y ڥy ٥y إy ץy ֥y Ո:_}0L`8`E)))8i@0 ڄԠ ( !   L* :`} &О ( !   L* :a} &О ( !   L* &О :b}( !   L* &О ( !  :c} L* &Оd ( !   L*:d} &ОL6 e e e e e i :e} } } } } } } ǭ m m m m m m  } }:f} } } } } ǥՅօׅ؅مԅՅօׅ؅`hh !LHH`ؠ:g}ɀhhHH֥ץ?ȱȱӰ8ְױօօ0LB  ERROR - à  in Li:h}ne  ($8H h ) Program Ended: os, un or oad ?@ !D L RL L Filen:i}ame D: Jȱɛ):ȱɛ.ȩCȩTȩBȥ SLȹD:LKHJJJJ h) 0:iLp 8:j}` B 0`L<馒撥ԝޥ՝*ޥ֝Tޥם~ޥ؝ޥٝ` ƒޅԽ*ޅսTޅֽ~ޅ׽ޅؽޅ`ƒޅ*ޅTޅ~ޅ㽨ޅ:k}`撝ޘ*` ӥԝإ՝٥֝ڥםۥ؝ܥٝݥ`LT؅Խمսڅֽۅ׽܅ؽ݅`؅مڅۅ܅݅`:l}ȱȱȱȱȱ`ȱȱȱȱȱ`٩@ةڝ۝ܝ`թ@ԩօׅ؅`  :m}LQȱȱȱȱȱ`ȥȥȥȥȥ` wLH wh LQԄՠԅք` L :n} !ԝD՝E֝HeםI L`Laee 8厅叅eeL!):o}L)`x,Ң⅌Ҙ襉ҥ `8$ L8$ ȍ` JKiLH h):p}I ! SLJUVT`T L) ʥԤհ` L ` !L8, !L8 ` iLJ놈 LJ놈 ,LQ:q} HԝDEILꆓBJKԝD՝E CL8醈 B LJ놈& LM J릓N:r}LJL)NLM%L L j L `L=! Sp D o 8:s} LpL ,#,$,!pLL ,HBDEhHIL oL8馓HIBL !L8ɅĈeɐ ň:t}`֥ԅԅՅ,`$8n!?! D i\ iU?! iD iE=D iH ih8DHEI:u}HI C ,!L `L= JhhlԄե֥נȱհ  ȱօȱօ` L=Ԅ՘0):v}ȱհ ȱe懰楆ƇƆ`L)L=醈ɛi懠,ɛ󥆦 Seօ` Lt Ԥբ:w}H e" hLQL=醈 *? , DEHI ` DLr 4 e"ɛ ,ЬLQ DL:x} 4eɛ SLtI L L L L L@ ; ` ; ` ; :y} ` ; m` L=@@ȅ@`I`)` ; USN ; FG ; ?: ; :z}201 ; &' ;  ;% ;L Lå ` : : :ڰ :ΰ :ǰ :оE%:{} jE `0``֪ (ϰ`(8`8` :|}ԤՅ` e"4 L= Ԅձ80  &ԅ L  eԪp`L) HJJJJ :}}h) 0:i`Ԅ 0 ["ȱ)ȥ,  ՅԄ֩`?Ԣ )ɠڭ ) ڕL:~} ^ L)8@L` )8@D:)8@-٩֔$ሄL` :} ^Ű$` hŰ` &ư` Rİ` Vİ ` rð` ƐL=0L L ;&)ԥ)8@עJjH@M:}C)JJJe)e F ¥P & F Q LL)HHHHHH Vİhhhhhh ðh:}ԅ` L %ઘ%ᨊ` ઘᨊ` EઘEᨊ`<|'gԥ0L=`  *  &L_,:}ڄ  eڅԥeۅհ"8څ֥ۅא8ܥݰ`۠Q%0ԅإՅ٥ަ0%Q% L:}ե0Lڤ`օנ6&֐ eו`L)ԘբՅ Ԣ Յ֠&&֐eܥe:}ېڈ $0!ee80å/8ܥ۰uڕ0eUiV`T:}UV`8UV`eTi`8TȢ` !L8醊 æ f Ŋ :ƒޑȽ*ޑ:}ȽTޑȽ~ޑȽޑȽޑȥԑȥՑȥ֑ȥבȥؑȥّȥȩhihHiH&HHH wh Lhh`hh`8:}` L=醊 f ŊHȱȱȱȱȱ妊 w Qh LhhHHe`*ȱȱ:}ȱȱȱjEE `EjI ` p D il ie o"p"q" i i i i i io"8:}o" K膖  Lo"L=؝ٝڝ۝ܝ륄Lei  :}`L=饏őŐ%Ƒ8 Ƒ` f,L= fhhHH`, :hihHi:}H`` J :hihil  ¥Ӡ L  @Մ$ Q` Q` QLQH :} h @Յ՘JJJJ y) 0:i`AVC2 5 - <) - < :}L L e e`e`&&&&&&eee` &&eee&*` u:}8)Ӱ% hhȱԅȱԅl ʰԤզ`hhheӨhiHH` u u88Ӱڪ :(jheӑhi Lh:}פօۄڠ܄ݠFfؐeڅܥeۅ0&ۈ`L >ӆiHi0Hƒiֹ*i0Ѕ &ݤݥ &e܅ܘe݅:}hhLlӅ؄م܄0օצӽАԥեܤ Q `ƒ*ޅޅ wإ:}ٰ5֥װ+ eܥe*ݨ &eܪeeըeԐ`L L L ӆ 4Ԥզ L_ ӆ Ԥզ L:}_ L LL=ӦԆՆֆ׆Lw Y٤ ۘ` Y  L~ Y ې Hh`פōČԅe:}Յe &"8ӥب`ƒޅ*ޅ L=؅مƒ8*ޥ֥אeԥe`:} w㰶H wֆ׆h8Lԩ!HHֆ׊HHʽ޼*ԆեHL!àLLeԐ `8԰L):} w㰶H wֆ׆h8Lԩ!HHֆ׊HHʽ޼*ԆեHL!àLLeԐ `8԰L)8Wdir is a new program by Jon D. Melbo written in Action! that allows for a wide screen dir for any of the SpartaDos's. In a >}standard 40 col screen, it produces a two col dir. If used with an XEP80, produces a 4 col dir. Source codes and doc's are >}included. This is a very good program and the source code is worth looking over. Mike... Atari Archive Louisiana _________>}_____________________________________________________________________ Sherry L. Snyder L.P.N. Mike >}Todd - Publications. Tulane Dept. of Dermatology Tulane Dept. of Dermatology snyder10@convex1.tcs.tula>}ne.edu dt01mws@music.tcs.tulane.edu Tulane Dept. of Dermatology snyder10@convex1.tcs.tula<3